package edu.aynu.service;

import edu.aynu.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.userdetails.UserDetailsService;

import java.util.List;

public interface UserService extends UserDetailsService {

    /**
     * 根据ID查询个人信息
     * @param id
     * @return
     */
    User queryById(Integer id);

    /**
     * 根据账号或者邮箱查询密码
     * 验证密码是否正确
     * @param user
     * @return
     */
    User queryOne(User user);

    /**
     * 判断账户是否存在
     * 判断邮箱是否存在
     * @param username
     * @return
     */
    User deterUsername(String username);
    User deterEmail(String email);

    /**
     * 注册的新用户  添加到数据路
     * @param user
     * @return
     */
    int addUser(User user);

    /**
     * 注册  成功之后
     * 完善自己的个人信息 , 比如 密码 姓名  邮箱。
     * @param user
     * @return
     */
    int updateUserById(User user);

    /**
     * 用户自己注销功能
     * @return
     */
    int deleteUserById(int id);

    /**
     * =================================管理员操作===============================================================
     */

    /**
     * 展示所有用户信息
     * @return
     */
    List<User> queryAll();

    /**
     * 删除多个用户
     * @param ids
     * @return
     */
    int deleteUserByIds(@Param("ids") Integer[] ids);



}
